package com.yckj.day04;

/**
 * TODO 数组的声明、定义和初始化
 * 数组属于引用数据类型， 存储的是一组数据类型相同的数据
 *
 * @author shengyuee
 * @version 1.0
 * 2025/7/21 14:30
 */
public class ArrayDemo1 {
    public static void main(String[] args) {
        // 1. 静态初始化
        int[] arr1 = new int[]{12,34,56,78,90};
        int[] arr2 = {10,20,40};
        // 2. 动态初始化
        // new  int[10] 在堆空间中分配一块连续的存储空间, 这块连续的存储空间可以存储10个int类型数据.
        int[] arr3 = new int[10]; // 每个元素的默认值就是整数默认值0
        int[] arr4 = null; // 先声明数组
//        arr4 = new int[5];// 后初始化

        // 获取元素的长度length
        System.out.println(arr3.length);
        // 访问元素值,数组的下标从0开始,通过数组的索引值（下标）来访问数组的每一个元素
        System.out.println(arr1[2]);
        // 修改数组元素的值
        arr1[2] = 88;
        // 最后一个元素的下标arr3.length-1
        System.out.println(arr3[arr3.length-1]);
        // 重新赋值
        arr3[4] = 80;
        System.out.println(arr3[4]);
        // 数组下标越界异常（ArrayIndexOutOfBoundsException）
        //System.out.println(arr3[10]);
        // 空指针异常（NullPointerException）
        System.out.println(arr4[1]);
    }
}
